A computer network typically comprises a plurality of interconnected entities that transmit (“source”) or receive (“sink”) data frames. A common type of computer network is a local area network (“LAN”) that generally comprises a privately owned network within a single building or campus. LANs employ a data communication protocol (LAN standard) such as Ethernet, FDDI, or Token Ring, that defines the functions performed by the data link and physical layers of a communications architecture (i.e., a protocol stack), such as the Open Systems Interconnection (OSI) Reference Model. In many instances, multiple LANs may be interconnected by point-to-point links, microwave transceivers, satellite hookups, etc., to form a wide area network (“WAN”), metropolitan area network (“MAN”) or Intranet. These internetworks may be coupled through one or more gateways to the global, packet-switched internetwork known as the Internet.
Each network entity preferably includes network communication software, which may operate in accordance with Transport Control Protocol/Internet Protocol (TCP/IP). TCP/IP generally consists of a set of rules defining how entities interact with each other. In particular, TCP/IP defines a series of communication layers, including a transport layer and a network layer. At the transport layer, TCP/IP includes both the User Data Protocol (UDP), which is a connectionless transport protocol, and TCP which is a reliable, connection-oriented transport protocol. When a process at one network entity wishes to communicate with another entity, it formulates one or more messages and passes them to the upper layer of the TCP/IP communication stack. These messages are passed down through each layer of the stack where they are encapsulated into packets and frames. Each layer also adds information in the form of a header to the messages. The frames are then transmitted over the network links as bits. At the destination entity, the bits are re-assembled and passed up the layers of the destination entity's communication stack. At each layer, the corresponding message headers are also stripped off, thereby recovering the original message which is handed to the receiving process.
One or more intermediate network devices are often used to couple LANs together and allow the corresponding entities to exchange information. For example, a bridge may be used to provide a “bridging” function between two or more LANs. Alternatively, a switch may be utilized to provide a “switching” function for transferring information, such as data frames or packets, among entities of a computer network. Typically, the switch is a computer having a plurality of ports that couple the switch to several LANs and to other switches. The switching function includes receiving data frames at a source port and transferring them to at least one destination port for receipt by another entity. Switches may operate at various levels of the communication stack. For example, a switch may operate at Layer 2 which, in the OSI Reference Model, is called the data link layer, and includes the Logical Link Control (LLC) and Media Access Control (MAC) sub-layers.
Other intermediate devices, commonly known as routers, may operate at higher communication layers, such as Layer 3, which in TCP/IP networks corresponds to the Internet Protocol (IP) layer. IP data packets include a corresponding header which contains an IP source address and an IP destination address. Routers or Layer 3 switches may re-assemble or convert received data frames from one LAN standard (e.g., Ethernet) to another (e.g., Token Ring). Thus, Layer 3 devices are often used to interconnect dissimilar subnetworks. Some Layer 3 intermediate network devices may also examine the transport layer headers of received messages to identify the corresponding TCP or UDP port numbers being utilized by the corresponding network entities. Many applications are assigned specific, fixed TCP and/or UDP port numbers in accordance with Request For Comments (RFC) 1700. For example, TCP/UDP port number 80 corresponds to the Hypertext Transport Protocol (HTTP), while port number 21 corresponds to File Transfer Protocol (FTP) service.
Allocation of Network Resources
A process executing at a network entity may generate hundreds or thousands of traffic flows that are transmitted across a network. Generally, a traffic flow is a set of messages (frames and/or packets) that typically correspond to a particular task, transaction or operation (e.g., a print transaction) and may be identified by various network and transport parameters, such as source and destination IP addresses, source and destination TCP/UDP port numbers, and transport protocol.
Computer networks include numerous services and resources for use in moving traffic flows throughout the network. For example, different network links, such as Fast Ethernet, Asynchronous Transfer Mode (ATM) channels, network tunnels, satellite links, etc., offer unique speed and bandwidth capabilities. Particular intermediate devices also include specific resources or services, such as number of priority queues, filter settings, availability of different queue selection strategies, congestion control algorithms, etc. Each logical network interface (LI) of a network device can provide a different service or resource. For ease of explanation, the term “device” or “network device,” unless expressly indicated otherwise, hereinafter refers to the device in its entirety or one or more ports/interfaces/LI's of the device.
Individual frames or packets can be marked so that intermediate devices may treat them in a predetermined manner. For example, the Institute of Electrical and Electronics Engineers (IEEE) describes additional information for the MAC header of Data Link Layer frames in Appendix 802.1p to the 802.1D bridge standard. The treatment that is applied to different traffic flows may vary depending on the particular traffic flow at issue. For example, an online trading application may generate stock quote messages, stock transaction messages, transaction status messages, corporate financial information messages, print messages, data backup messages, etc. A network administrator may wish to apply a different policy or service treatment (“quality of service” or “QoS” treatments) to each traffic flow. In particular, the network administrator may want a stock quote message to be given higher priority than a print transaction. Similarly, a $1 million stock transaction message for a premium client may be assigned higher priority than a $100 stock transaction message for a standard customer.
Each network device, or logical network interface LI therein, can be associated with one or more policies to be applied to the appropriate traffic flows in accordance with the traffic flow markings, with other parameters such as Layer 3 parameters (e.g., IP addresses and port numbers), with application level parameters which are attached to (or were extracted from) the traffic flow, or with a combination of one or more thereof. Each policy may be assigned to one or more network devices. One way to facilitate such assignment is through role management. Role management includes assigning one or more roles to each network device, and associating one or more policies with those roles. Thus, the policies and network devices are mapped in groups according to the roles.
Each network device may be configured to receive such policies communicated in accordance with one or more formats, or protocols. Examples of such protocols include Command Line Interface (“CLI”) and Simple Network Management Protocol (“SNMP”). More recently, the IEFT has established the Common Open Policy Service (“COPS”) protocol for downloading policies to network devices. The COPS protocol can facilitate the communication of more abstract, less specific policies than, for example, CLI. Associated with the COPS protocol is a policy information base (“PIB”) which includes multiple variables used to define policies to be downloaded to network devices. The PIB is defined in a rather abstract fashion, therefore it does not necessarily contain all details about each device-specific QoS feature. For example, the PIB can abstract the notion of a queuing mechanism by describing it in terms of the number of queues and number of thresholds. Therefore, it does not necessarily have to deal with such features as Priority Queuing, Custom Queuing, WFQ, etc. In contrast, use of CLI typically requires handling of very minor details of each feature of each specific LI on each specific device with each specific operating system.
The COPS protocol provides a standard protocol that facilitates improvements in policy communication, including scalability and security. However, network devices that are not configured to receive and interpret policies according to the COPS protocol (non-COPS-enabled), may not enjoy such benefits. Also, such network devices would not receive the appropriate policies when such policies are communicated only according to the COPS protocol. Therefore, networks including devices that are COPS-enabled as well as devices that are not COPS-enabled may require policy communication in accordance with both the COPS protocol and one or more other protocols that are appropriate to the non-COPS-enabled network devices. Furthermore, to maximize consistent behavior throughout the network, it is desirable to configure the network devices at substantially the same time, with the same policies in accordance with the same protocol.
Therefore, a mechanism for facilitating the communication of policies according to the COPS protocol to network devices that are non-COPS-enabled, is desired. In particular, it is desired to provide such a system and method with minimal complexity and maximum efficiency.